//////////////////////////////////////////////////////////////////////////
//             Copyright 2013 TYPROTECH All Rights Reserved             //
//////////////////////////////////////////////////////////////////////////
/* =======================================================================
 * 系统名   : 安防平台管理系统
 * 子系统名 : 基础数据模块
 * Class名  : RoleSpecs
 * 概要     : 基础数据属性Specification类
 * 改版履历 : 
 * 版本     		日期        	作者名             备注
 * 1.0.0    2013.04.13  许智翔          初次作成
 * =======================================================================
 */
package com.framework.web.sys.repository.specifications;

import com.framework.core.util.LikePatternUtil;
import com.framework.core.util.StringUtil;
import com.framework.web.sys.domain.Organization;
import org.springframework.data.jpa.domain.Specification;

import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;

public class OrganizationSpecs {

	/**
	 * 根据条件对角色进行查询分页操作
	 *
	 * @param organization
	 * @return
	 */
	public static Specification<Organization> LikeOrgName(
			final Organization organization) {

		return new Specification<Organization>() {
			@Override
			public Predicate toPredicate(Root<Organization> root,
					CriteriaQuery<?> query, CriteriaBuilder builder) {
				Predicate predicate = builder.and();
				// 机构名称
				if (StringUtil.isNotEmpty(organization.getOrgName())) {
					predicate = builder.and(predicate, builder.like(
							builder.lower(root.<String>get("orgName")),
							LikePatternUtil.getLikePattern(organization.getOrgName())));
				}

				if (StringUtil.isNotEmpty(organization.getLevel())) {
					predicate = builder.and(predicate, builder.like(
							builder.lower(root.<String>get("level")),
							LikePatternUtil.getEndLikePattern(organization.getLevel())));
				}

				return predicate;
			}
		};
	}



}
